Skip to content

feat(helm): migrate away from bitnami helm chart#2569

Merged
pepol merged 5 commits intomainfrom
peter/eng-8854-keycloakx-chart
Mar 14, 2026
Merged

feat(helm): migrate away from bitnami helm chart#2569
pepol merged 5 commits intomainfrom
peter/eng-8854-keycloakx-chart

Conversation

@pepol
Copy link
Copy Markdown
Member

@pepol pepol commented Feb 27, 2026

Summary by CodeRabbit

  • Chores
    • Switched Keycloak Helm chart to a different upstream chart/version with compatibility alias.
    • Reworked Keycloak defaults: new image repo/tag, replicas=1, startup args, enabled health checks, explicit HTTP path/port (adds -http suffix), embedded database wiring, bootstrap secrets, extra env/volume mounts, cache changes, and removal of legacy keys.
  • Documentation
    • Updated chart docs and maintainer metadata to reflect the new chart source and maintainer.

Checklist

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 27, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Replaces Bitnami keycloak dependency with Codecentric keycloakx (aliased keycloak), restructures Helm Keycloak values (image, args, database, health/http, extras, secrets), updates README/CHART metadata and ingress to target the -http service suffix. (50 words)

Changes

Cohort / File(s) Summary
Chart dependency
helm/cosmo/Chart.yaml
Replaced dependency keycloak (Bitnami) with keycloakx (Codecentric v7.1.8), added alias: keycloak and condition: global.keycloak.enabled, updated repository URL.
Keycloak values
helm/cosmo/values.yaml
Reworked Keycloak config: new image repository/tag, added replicas, args, service.httpPort, http.relativePath, health.enabled, database, extraVolumes/extraVolumeMounts/extraEnv, secrets.bootstrap; removed legacy auth, postgresql/externalDatabase, startupProbe.enabled, resourcesPreset, and legacy service ports; updated global.keycloak.apiUrl host to -http.
Docs / metadata
helm/cosmo/CHART.md, helm/cosmo/README.md
Updated chart requirements to keycloakx (Codecentric) and version, replaced repo reference, added maintainer entry, and documented new Keycloak configuration schema and deprecations.
Ingress template
helm/cosmo/templates/ingress.yaml
Adjusted Keycloak backend service name to target the -http suffixed service (e.g., {{ include "keycloak.fullname" . }}-http).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: migrating the Keycloak dependency from Bitnami's helm chart to codecentric's keycloakx chart across Chart.yaml, values.yaml, and documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@pepol pepol marked this pull request as ready for review February 27, 2026 17:08
@pepol pepol force-pushed the peter/eng-8854-keycloakx-chart branch from 4063dcc to fb236c4 Compare February 27, 2026 17:10
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@helm/cosmo/README.md`:
- Line 181: The Markdown table row for keycloak.extraEnv contains unescaped pipe
characters in the default multiline string (references: keycloak.extraEnv,
KC_BOOTSTRAP_ADMIN_PASSWORD, .Values.global.keycloak.adminPassword) which breaks
the table; fix it by escaping each pipe inside the string (e.g., replace "|"
with "\|" or use "|") so the table parser treats them as literal characters
rather than column separators, ensuring the value string remains unchanged
semantically but safe for Markdown rendering.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 21e0e0a and 4063dcc.

📒 Files selected for processing (3)
  • helm/cosmo/CHART.md
  • helm/cosmo/README.md
  • helm/cosmo/values.yaml

Comment thread helm/cosmo/README.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
helm/cosmo/values.yaml (1)

359-362: Production consideration: start-dev mode should not be used in production.

The start-dev argument disables TLS and enables dev-mode features. While the comment at line 360 notes "Production requires TLS", this configuration as default values could lead to accidental production deployments without TLS.

Consider either:

  1. Adding a more prominent warning in the values file
  2. Providing a separate production-ready configuration example
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@helm/cosmo/values.yaml` around lines 359 - 362, The values file currently
includes the 'start-dev' entry under args which disables TLS and should never be
the default for production; remove 'start-dev' from the default args list, add a
prominent WARNING comment above the args block calling out that 'start-dev' must
not be used in production, and add a separate commented "production example"
values snippet (without 'start-dev' and showing the TLS-related
flags/configuration) so operators have a safe, copy-paste production
configuration; reference and update the args array and the 'start-dev' token in
the helm values to implement this.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@helm/cosmo/values.yaml`:
- Around line 359-362: The values file currently includes the 'start-dev' entry
under args which disables TLS and should never be the default for production;
remove 'start-dev' from the default args list, add a prominent WARNING comment
above the args block calling out that 'start-dev' must not be used in
production, and add a separate commented "production example" values snippet
(without 'start-dev' and showing the TLS-related flags/configuration) so
operators have a safe, copy-paste production configuration; reference and update
the args array and the 'start-dev' token in the helm values to implement this.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4063dcc and fb236c4.

⛔ Files ignored due to path filters (1)
  • helm/cosmo/Chart.lock is excluded by !**/*.lock
📒 Files selected for processing (6)
  • helm/cosmo/CHART.md
  • helm/cosmo/Chart.yaml
  • helm/cosmo/README.md
  • helm/cosmo/charts/keycloak-22.0.0.tgz
  • helm/cosmo/charts/keycloakx-7.1.8.tgz
  • helm/cosmo/values.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • helm/cosmo/Chart.yaml

@pepol pepol force-pushed the peter/eng-8854-keycloakx-chart branch from cb408a6 to c0d002a Compare February 27, 2026 17:18
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@helm/cosmo/README.md`:
- Line 181: The README at helm/cosmo/README.md has drift (the rendered table row
for keycloak.extraEnv doesn't match generated output) and CI fails; regenerate
the chart documentation with the exact tool/version used by CI (the chart doc
generator that produces the keycloak.extraEnv table row) and commit the
regenerated README so the rendered table (the keycloak.extraEnv row) matches
exactly what CI expects; ensure you run the same command/version as CI, verify
the keycloak.extraEnv row now matches, and commit the updated README.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fb236c4 and cb408a6.

📒 Files selected for processing (1)
  • helm/cosmo/README.md

Comment thread helm/cosmo/README.md Outdated
@pepol pepol enabled auto-merge (squash) February 27, 2026 17:19
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@helm/cosmo/values.yaml`:
- Around line 359-362: The Helm values currently set Keycloak to start in dev
mode by default (args contains 'start-dev'); change the default startup arg in
the args array from 'start-dev' to 'start' so production uses the proper kc.sh
start behavior, leaving 'start-dev' available only as an explicit override for
local/dev deployments (update any related docs or comments to note that
'start-dev' is for local use only).
- Around line 395-399: The extraEnv entries for KC_BOOTSTRAP_ADMIN_USERNAME and
KC_BOOTSTRAP_ADMIN_PASSWORD render raw template values which can break YAML when
the credentials contain special characters; update the value expressions for
.Values.global.keycloak.adminUser and .Values.global.keycloak.adminPassword to
produce quoted/escaped strings (use the Helm quote function or ensure the
template output is wrapped in double quotes) so the produced manifest remains
valid even with colons, hashes, or quotes in the credentials.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cb408a6 and c0d002a.

📒 Files selected for processing (2)
  • helm/cosmo/README.md
  • helm/cosmo/values.yaml

Comment thread helm/cosmo/values.yaml
Comment thread helm/cosmo/values.yaml Outdated
@pepol pepol disabled auto-merge February 27, 2026 19:12
@pepol pepol force-pushed the peter/eng-8854-keycloakx-chart branch from c0d002a to 3dc8902 Compare March 5, 2026 14:49
@pepol pepol enabled auto-merge (squash) March 5, 2026 14:54
@pepol pepol force-pushed the peter/eng-8854-keycloakx-chart branch from 3dc8902 to 0b213d3 Compare March 5, 2026 15:28
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@helm/cosmo/CHART.md`:
- Line 27: Update the Keycloak Helm repo URL in CHART.md: replace the incorrect
repository string "https://codecentric.github.io/helm-chart" in the table row
containing "keycloakx" with the correct
"https://codecentric.github.io/helm-charts" so the entry remains "|
https://codecentric.github.io/helm-charts | keycloakx | ^7.1.8 |".

In `@helm/cosmo/values.yaml`:
- Line 64: The ingress backend is routing to the wrong Keycloak service name;
update the ingress template so the backend service name matches the actual
Keycloak service created (cosmo-keycloak-http) or change the value used by the
include. Specifically, reconcile the mismatch between the values key apiUrl
(apiUrl: 'http://cosmo-keycloak-http:8080') and the ingress backend reference
({{ include "keycloak.fullname" .}) by modifying the ingress backend to
reference the http service (the fullname for the Keycloak HTTP service) or
adjust the keycloak chart include used in the ingress template so it resolves to
the http service name (ensure the template uses the Keycloak HTTP service
fullname rather than the nonexistent base service).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: cad90f2a-f629-4b3c-8ddc-1a0d91b58489

📥 Commits

Reviewing files that changed from the base of the PR and between c0d002a and 0b213d3.

⛔ Files ignored due to path filters (1)
  • helm/cosmo/Chart.lock is excluded by !**/*.lock
📒 Files selected for processing (6)
  • helm/cosmo/CHART.md
  • helm/cosmo/Chart.yaml
  • helm/cosmo/README.md
  • helm/cosmo/charts/keycloak-22.0.0.tgz
  • helm/cosmo/charts/keycloakx-7.1.8.tgz
  • helm/cosmo/values.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • helm/cosmo/Chart.yaml

Comment thread helm/cosmo/CHART.md Outdated
Comment thread helm/cosmo/values.yaml
@pepol pepol force-pushed the peter/eng-8854-keycloakx-chart branch from 0b213d3 to 345ad2e Compare March 5, 2026 15:42
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
helm/cosmo/values.yaml (1)

359-362: Default start-dev mode is appropriate for this dev-focused chart but document production guidance.

The start-dev argument is suitable given the chart's stated purpose (lines 344-349 explicitly state these charts are for development/testing, not production). The inline comment on line 360 acknowledges TLS requirements for production.

Consider adding a note in the README or DEV.md explaining that production deployments should override args to use start with proper TLS/hostname configuration.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@helm/cosmo/values.yaml` around lines 359 - 362, The chart currently defaults
the container args list (args: including 'start-dev', '--import-realm',
'--optimized') for development; add a short note to the chart README or DEV.md
explaining that production deployments must override these Helm values (the args
key) to use the non-dev command (replace 'start-dev' with 'start'), and must
supply proper TLS certificate, hostname, and related configuration (e.g.,
ingress/host, TLS secret) via Helm values or values.yaml overrides; mention the
exact values key to change (args) and suggest using helm --set or a production
values file to perform the override.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@helm/cosmo/values.yaml`:
- Around line 359-362: The chart currently defaults the container args list
(args: including 'start-dev', '--import-realm', '--optimized') for development;
add a short note to the chart README or DEV.md explaining that production
deployments must override these Helm values (the args key) to use the non-dev
command (replace 'start-dev' with 'start'), and must supply proper TLS
certificate, hostname, and related configuration (e.g., ingress/host, TLS
secret) via Helm values or values.yaml overrides; mention the exact values key
to change (args) and suggest using helm --set or a production values file to
perform the override.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fcb5636d-8564-4e74-bf8a-e3df8b2c8f99

📥 Commits

Reviewing files that changed from the base of the PR and between 0b213d3 and 345ad2e.

⛔ Files ignored due to path filters (1)
  • helm/cosmo/Chart.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • helm/cosmo/CHART.md
  • helm/cosmo/Chart.yaml
  • helm/cosmo/README.md
  • helm/cosmo/charts/keycloak-22.0.0.tgz
  • helm/cosmo/charts/keycloakx-7.1.8.tgz
  • helm/cosmo/templates/ingress.yaml
  • helm/cosmo/values.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • helm/cosmo/CHART.md

@pepol pepol force-pushed the peter/eng-8854-keycloakx-chart branch 3 times, most recently from b251ae4 to 03e2a93 Compare March 9, 2026 15:46
@pepol pepol force-pushed the peter/eng-8854-keycloakx-chart branch from 03e2a93 to f8e2a28 Compare March 13, 2026 12:22
Copy link
Copy Markdown
Contributor

@StarpTech StarpTech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@pepol pepol merged commit cd38084 into main Mar 14, 2026
10 checks passed
@pepol pepol deleted the peter/eng-8854-keycloakx-chart branch March 14, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants